package stu.aistar.day02.method;

public class MethodHelloDemo {
    /**
     * main - 仍然是程序的主入口
     * @param args
     */
    public static void main(String[] args) {
        //类中的方法 - 类里面的成员
        //static - 静态的成员被初始化的时机
        //静态方法什么时候被初始化的? - 当JVM加载类进内存的时候,就会立即给所有的静态的成员分配空间以及初始化
        //在这个阶段,压根就没有对象的概念,只有类.
        //结论 - 静态的成员属于类的,并且初始化的时机有且1次.
        //属于谁,就由谁去调用!



        //1. 调用静态的方法,直接通过类.方法名([参数])
        //类 - 该静态方法所在的当前类
        MethodHelloDemo.sub();

        //non-static -> 非静态的成员被初始化的时机?
        //当遇到创建对象的语法.每次创建对象的时候,都会给各自的非静态成员分配空间以及初始化
        //如果没有创建对象,就不会初始化这些非静态成员.
        //结论: 非静态成员是属于对象的.属于谁,由谁调用.

        //2. 非静态方法 - 通过对象去调用
        //调用哪个类中的方法,就去创建哪个类的对象
        //后面的OO知识点 -> 类名 变量 = new 类名();

        //创建了一个 MethodHelloDemo对象,m就是对象名
        MethodHelloDemo m = new MethodHelloDemo();
        m.add();
    }

    /**
     * 定义了公开的非静态的无返回类型的方法
     */
    public void add(){
        System.out.println("add...");
    }

    /**
     * 定义了公开的静态的无返回类型的方法
     */
    public static void sub(){
        System.out.println("sub...");
    }
}
